//
//  AkuSelectCityController.m
//  AkuCareLink
//
//  Created by 阿酷 on 16/7/5.
//  Copyright © 2016年 AkuApp. All rights reserved.
//

#import "AkuSelectCityController.h"
#import "AkuCitysModel.h"

@interface AkuSelectCityController ()

// 初始化 界面 需要的 城市 信息
@property (nonatomic, strong) NSArray *cityArray;

@end


@implementation AkuSelectCityController

#pragma mark - 初始化方法
- (instancetype)initWithCityArr:(NSArray *)cityArr {
    
    if (self = [super init]) {
        
        // 初始化 方法 给 数组 赋值
        self.cityArray = cityArr;
        
        // cell 注册
        [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
    }
    return self;
}

#pragma mark - UITableViewCell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    
    id cityType = self.cityArray[indexPath.row];
    
    // 因为 有 省会 --> 市级  两个不同,   根据
    // 根据 数组里的 是否为 模型   给 cell.text  赋 不同 的文字
    if ([cityType isKindOfClass:[AkuCitysModel class]]) {
        
        // 当前 是 省份 的tableView 设置 省份 名字
        cell.textLabel.text = ((AkuCitysModel *)cityType).name;
        
    } else {
        
        // 当前 是 市级 的tableView 设置 城市 名字
        cell.textLabel.text = cityType;
    }
   
    return cell;
}

#pragma mark - 点击 cell
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    id cityType = self.cityArray[indexPath.row];
    
    // 根据 数组里的 是否为 模型  做相应的 跳转
    if ([cityType isKindOfClass:[AkuCitysModel class]]) {

        /*
         
         当前 为 省份 界面 应该跳转 到城市 界面
         
         */
        
        // 再次 push 到     AkuSelectCityController 传递  model 里zhuanga  城市 数组
        AkuSelectCityController *seleCityCon = [[AkuSelectCityController alloc] initWithCityArr:((AkuCitysModel *)cityType).cities];

        seleCityCon.title = @"选择当前城市位置";
        
        // 因为 home 界面 需要 通过 tableView 的 block  返回 城市 信息 .
        // 所以 在 此 界面 push 到 下一城市 界面 的时候 需要 把 之前在 home 界面 赋值 的block转交给,下一个城市界面
        // 让 下一个 城市 界面 block 做 home 界面 的 block 回调
        seleCityCon.backSelectCity = self.backSelectCity;

        [self.navigationController pushViewController:seleCityCon animated:YES];
        
    } else {
        
        // 说明当前 是在 城市 table  界面里
        // 给 home 界面进行赋值
        self.backSelectCity(cityType);

        // pop 回跟控制器
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
}

#pragma mark - 返回多少 行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
    return self.cityArray.count;
    
}

@end













